package com.dianxin.smartpark.service.park;

import java.util.List;

import com.chinatelecom.response.common.CommonResponseBody;
import com.dianxin.smartpark.dao.qo.park.SmartParkCarParkingQO;
import com.dianxin.smartpark.service.validation.Delete;
import com.dianxin.smartpark.service.validation.Save;
import com.dianxin.smartpark.service.validation.Update;
import com.dianxin.smartpark.service.vo.park.SmartParkCarParkingVO;
import org.springframework.scheduling.annotation.Async;
import org.springframework.validation.annotation.Validated;

/**
 * 停车记录接口
 * 
 * @author chenjiasong
 * @date 2021-08-31
 */
public interface SmartParkCarParkingService
{
    /**
     * 查询停车记录
     * 
     * @param smartParkCarParkingqo 停车记录
     * @return 停车记录
     */
    CommonResponseBody<SmartParkCarParkingVO> selectSmartParkCarParking(SmartParkCarParkingQO smartParkCarParkingqo);

    /**
     * 查询停车记录列表
     * 
     * @param smartParkCarParkingqo 停车记录
     * @return 停车记录集合
     */
    CommonResponseBody<List<SmartParkCarParkingVO>> selectSmartParkCarParkingList(SmartParkCarParkingQO smartParkCarParkingqo);

    /**
     * 新增停车记录
     * 
     * @param smartParkCarParkingvo 停车记录
     * @return 结果
     */
    @Validated(Save.class)
    @Async
    CommonResponseBody<Boolean> insertSmartParkCarParking(SmartParkCarParkingVO smartParkCarParkingvo) throws Exception;

    /**
     * 修改停车记录
     * 
     * @param smartParkCarParkingvo 停车记录
     * @return 结果
     */
    @Validated(Update.class)
    CommonResponseBody<Boolean> updateSmartParkCarParking(SmartParkCarParkingVO smartParkCarParkingvo);

    /**
     * 删除停车记录信息
     * 
     * @param vo 停车记录
     * @return 结果
     */
    @Validated(Delete.class)
    CommonResponseBody<Boolean> deleteSmartParkCarParking(SmartParkCarParkingVO vo);
}
